pub fn find_max_prime_factor(mut number: u128) -> u128 {
    let file = std::fs::File::open("primes.json").unwrap();
    let primes: Vec<u128> = serde_json::from_reader(file).unwrap();
    let mut iter = primes.iter();

    let mut max= 1;
    let mut i = iter.next().cloned().unwrap();
    let mut cnt = 0;
    while i * i <= number {
        while number % i == 0 {
            max = i;
            number /= i;            
        }
        if number == 1 {
            break;
        }
        i = iter.next().cloned().unwrap_or(0);
        if i == 0 {
            break;
        }
        cnt += 1;
    }
    if number != 1 {
        max = number;
    }
    println!("total cnt: {}, max: {}", cnt, max);
    max
}
